home *** CD-ROM | disk | FTP | other *** search
- 10 .tab(1,4;in hypra-ass: .li 1,4
- 20 .stop$c000;in hypra-ass: .ba $c000
- 30 ;*************************************
- 40 ; verschachtelte schleifen anwendung
- 50 ; allgemeiner bildschirmrahmen
- 60 ;*************************************
- 70 ;
- 80 ;lagerplatz fuer die zeichen: (hpyra-ass jeweils: .eq code1 = $1b usw.)
- 90 .remcode1=$1b;zeichen (NULL) = 4f
- 100 .remcode2=$1c;zeichen usr = 77
- 110 .remcode3=$1d;zeichen (NULL) = 50
- 120 .remcode4=$1e;zeichen fn = 74
- 130 .remcode5=$1f;zeichen then = 6a
- 140 .remcode6=$20;zeichen (NULL) = 4c
- 150 .remcode7=$21;zeichen and = 6f
- 160 .remcode8=$22;zeichen sqr = 7a
- 170 ;vektoren fuer bildchirm- und farb-ram:
- 180 .remscreen=$fb;bildschirmstart
- 190 .remcolor=$fd;farbramstart
- 200 ;zaehler:
- 210 .remhoriz=$23;zaehler fuer horizontale
- 220 .remvert=$24;zaehler fuer vertikale
- 230 ;der farbcode wird nur im x-register gespeichert
- 240 ;
- 250 ;definition eines makro: aktuell
- 260 ;in hypra-ass stattdessen: .ma aktuell(screen,color)
- 270 .verifyaktuell(screen,color)
- 280 spc(
- 290 cont
- 300 dimscreen
- 310 nextscreen
- 320 forscreen+1
- 330 dim#$00
- 340 nextscreen+1
- 350 spc(
- 360 cont
- 370 dimcolor
- 380 nextcolor
- 390 forcolor+1
- 400 dim#$00
- 410 nextcolor+1
- 420 input##$00
- 430 .print#;in hypra-ass: .rt
- 440 ;
- 450 ;nun gehts los:
- 460 ;
- 470 ;-------------- initialisierung ------------
- 480 ;
- 490 data#$02;farbcode ins x-register
- 500 for#$4f;alle zeichen in die speicher packen
- 510 nextcode1
- 520 for#$77
- 530 nextcode2
- 540 for#$50
- 550 nextcode3
- 560 for#$74
- 570 nextcode4
- 580 for#$6a
- 590 nextcode5
- 600 for#$4c
- 610 nextcode6
- 620 for#$6f
- 630 nextcode7
- 640 for#$7a
- 650 nextcode8
- 660 for#$00;lsb bildschirmstart
- 670 nextscreen
- 680 for#$04;msb bildschirmstart
- 690 nextscreen+1
- 700 for#$00;lsb farbramstart
- 710 nextcolor
- 720 for#$d8;msb farbramstart
- 730 nextcolor+1
- 740 for#39;stellenzahl pro zeile
- 750 nexthoriz
- 760 for#23;zeilenzahl-2
- 770 nextvert
- 780 input##$00;zaehler auf null
- 790 ;
- 800 ;------------ nun kommen die jobs: -------------
- 810 ;job 1: beschreiben der oberen zeile
- 820 forcode1;1.zeichen links oben
- 830 next(screen),y;einschreiben
- 840 print#;farbcode
- 850 next(color),y;in farbramstelle schreiben
- 860 sys;zaehler erhoehen
- 870 marke1 forcode2;2.zeichen einladen
- 880 next(screen),y;eine kleine schleife
- 890 print#
- 900 next(color),y;farbram beschreiben
- 910 sys
- 920 loadhoriz;ist y schon > 38 ?
- 930 intmarke1;wenn nicht, weitermachen
- 940 forcode3;letztes zeichen obere zeile
- 950 next(screen),y;nach rechts oben schreiben
- 960 print#
- 970 next(color),y;wieder farbcode eintragen
- 980 sys
- 990 ;das war die erste zeile. nun kommen die seitenlinien
- 1000 ;job 2: beschreiben der seiten
- 1010 ;
- 1020 marke2
- 1030 .pokeaktuell(screen,color);aufruf des makro
- 1035 ;in hypra-ass: ...aktuell(screen,color)
- 1040 ;damit werden die vektoren screen und color aktualisiert
- 1050 forcode4;4.zeichen fuer linken rand
- 1060 next(screen),y;eintragen
- 1070 print#;und den farbcode
- 1080 next(color),y;ebenfalls
- 1090 marke3 sys;zaehler schnell hochzaehlen
- 1100 loadhoriz;ist y schon > 38 ?
- 1110 intmarke3;wenn nicht, weiterzaehlen
- 1120 forcode5;sonst 5.zeichen fuer rechten rand
- 1130 next(screen),y;eintragen
- 1140 print#;und farbcode
- 1150 next(color),y;in farbram
- 1160 sys
- 1170 savevert;mitzaehlen der zeilen
- 1180 usrmarke2;naechste zeile, wenn noch nicht null
- 1190 ;ansonsten sind nun beide seitenlinien vorhanden
- 1200 ;job 3: beschreiben der letzten zeile
- 1210 ;dazu nochmal makroaufruf zum aktualisieren der vektoren
- 1220 .pokeaktuell(screen,color);dies ist der aufruf
- 1225 ;in hypra-ass wieder: ...aktuell(screen,color)
- 1230 ;nun kommt der job:
- 1240 forcode6;6.zeichen links unten
- 1250 next(screen),y;einschreiben
- 1260 print#;wieder den farbcode
- 1270 next(color),y;ins farbram schreiben
- 1280 sys;und den zaehler erhoehen
- 1290 marke4 forcode7;7.zeichen
- 1300 next(screen),y;eintragen. kleine schleife
- 1310 print#
- 1320 next(color),y;farbram
- 1330 sys
- 1340 loadhoriz;schon > 38 ?
- 1350 intmarke4;wenn nicht, weitermachen
- 1360 forcode8;sonst letztes zeichen
- 1370 next(screen),y;nach rechts unten schreiben
- 1380 print#;und auch den farbcode
- 1390 next(color),y;ins farbram eintragen
- 1400 ;
- 1410 ;damit ist die arbeit getan
- 1420 ;--------------- ausgang einfach durch brk (monitor!) ---------
- 1430 ;
- 1440 or
- 1450 ;
- 1460 .to1,4;in hypra-ass: .sy 1,4
-